perm filename LOGICP.2[S84,JMC] blob
sn#758265 filedate 1984-06-07 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 logicp.2[s84,jmc] Notes on logic programming
C00005 ENDMK
Cā;
logicp.2[s84,jmc] Notes on logic programming
1. The need for selective backtracking (at least in the map coloring
problem) is obviated if the goals are ordered at compile time in
such a way that once a set of variables is given values, the goals
involving only that set of variables are all satisfied before any
new variables are given values.
2. Prolog is pure compared to Lisp in that clauses never have
free variables in them that are identified with variables in
other clauses. Is this always desirable.
3. J.W. Lloyd should note on p. 6 that the substitution is the
answer.
4. Generalized cut (perhaps). Suppose the goals in a clause divide
into several sets with disjoint sets of variables. It then may pay
to solve each set separately and parametrize the sets of solutions.
The more common case will be when this is locally true, i.e. once
some variables have been given values, the remainder divide into
sets involved in disjoint sets of goals.
5. Is there a duality between variables and goals? In the map coloring
problem it seemed so.
6. In Prolog as in other problem solving situations, it is worthwhile
to think about proofs before searches. Thus we ask for the shortest
proof that these are all the solutions to a problem. The length of
the shortest proof is a lower bound on the length of the search and sometimes
this bound can be realized.